/**
 * 给定一个 N 叉树，返回其节点值的层序遍历。（即从左到右，逐层遍历）。
 *
 * 树的序列化输入是用层序遍历，每组子节点都由 null 值分隔（参见示例）。
 *
 *https://leetcode.cn/problems/n-ary-tree-level-order-traversal/
 */
class LevelOrderNTree {
    public List<List<Integer>> levelOrder(Node root) {
        List<List<Integer>> ret=new ArrayList<>();
        Queue<Node> qu=new LinkedList<>();
        if(root==null){
            return ret;
        }
        qu.offer(root);
        while(!qu.isEmpty()){
           int size=qu.size();
           List<Integer> list=new ArrayList<>();
           for(int i=0;i<size;i++){
               root=qu.poll();
               list.add(root.val);
               List<Node> children=root.children;
               for(Node node:children){
                   qu.offer(node);
               }
           }
            ret.add(list);
        }
        return ret;
    }
}